package io.yyxx.boot.business.entity.billDataEntity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.time.LocalDateTime;

@Data
@TableName("train_bill") // 数据库中的表名
public class TrainBillData {

    @TableId("id")
    private Long id;                 // 数据id

    @TableField("create_time")
    private LocalDateTime createTime;   // 新增时间

//    @TableField("update_time")
//    private LocalDateTime updateTime;   // 修改时间

    @TableField("sync_state")
    private int syncState;              // 同步状态

    @JsonProperty("dept_date")
    @TableField("dept_date")
    private String deptDate; // 发车日期

    @JsonProperty("dept_time")
    @TableField("dept_time")
    private String deptTime; // 发车时间

    @JsonProperty("arr_date")
    @TableField("arr_date")
    private String arrDate; // 到达日期

    @JsonProperty("arr_time")
    @TableField("arr_time")
    private String arrTime; // 到达时间

    @JsonProperty("dept_station")
    @TableField("dept_station")
    private String deptStation; // 发车站

    @JsonProperty("arr_station")
    @TableField("arr_station")
    private String arrStation; // 到达站

    @JsonProperty("run_time")
    @TableField("run_time")
    private String runTime; // 运行时长

    @JsonProperty("train_no")
    @TableField("train_no")
    private String trainNo; // 车次

    @JsonProperty("train_type")
    @TableField("train_type")
    private String trainType; // 车次类型

    @JsonProperty("seat_type")
    @TableField("seat_type")
    private String seatType; // 坐席

    @JsonProperty("seat_no")
    @TableField("seat_no")
    private String seatNo; // 座位号

    @JsonProperty("ticket_no")
    @TableField("ticket_no")
    private String ticketNo; // 票面票号

    @JsonProperty("order_price")
    @TableField("order_price")
    private double orderPrice; // 订单金额

    @JsonProperty("ticket_price")
    @TableField("ticket_price")
    private Double ticketPrice; // 票价

    @JsonProperty("service_fee")
    @TableField("service_fee")
    private Double serviceFee; // 服务费

    @JsonProperty("change_fee")
    @TableField("change_fee")
    private Double changeFee; // 改签手续费

    @JsonProperty("refund_fee")
    @TableField("refund_fee")
    private Double refundFee; // 退票手续费

    @JsonProperty("coupon")
    @TableField("coupon")
    private Double coupon; // 优惠券

    @JsonProperty("primary_id")
    @TableField("primary_id")
    private Long primaryId; // 主键 id

    @JsonProperty("index")
    @TableField("`index`")
    private String index; // 序号

    @JsonProperty("status")
    @TableField("status")
    private Integer status; // 入账状态

    @JsonProperty("bill_record_time")
    @TableField("bill_record_time")
    private String billRecordTime; // 入账时间

    @JsonProperty("order_id")
    @TableField("order_id")
    private String orderId; // 订单号

    @JsonProperty("book_time")
    @TableField("book_time")
    private String bookTime; // 预定时间

    @JsonProperty("booker_name")
    @TableField("booker_name")
    private String bookerName; // 预定人姓名

    @JsonProperty("booker_id")
    @TableField("booker_id")
    private String bookerId; // 预定人 id（用户 id）

    @JsonProperty("booker_job_no")
    @TableField("booker_job_no")
    private String bookerJobNo; // 预订人工号

    @JsonProperty("traveler_name")
    @TableField("traveler_name")
    private String travelerName; // 出行人名称

    @JsonProperty("traveler_id")
    @TableField("traveler_id")
    private String travelerId; // 出行人 Id（用户 id）

    @JsonProperty("traveler_job_no")
    @TableField("traveler_job_no")
    private String travelerJobNo; // 出行人工号

    @JsonProperty("cascade_department")
    @TableField("cascade_department")
    private String cascadeDepartment; // 联级部门

    @JsonProperty("department")
    @TableField("department")
    private String department; // 末级部门

    @JsonProperty("department_id")
    @TableField("department_id")
    private String departmentId; // 部门 id

    @JsonProperty("cost_center")
    @TableField("cost_center")
    private String costCenter; // 成本中心名称

    @JsonProperty("cost_center_number")
    @TableField("cost_center_number")
    private String costCenterNumber; // 成本中心编号

    @JsonProperty("project_name")
    @TableField("project_name")
    private String projectName; // 项目名称

    @JsonProperty("project_code")
    @TableField("project_code")
    private String projectCode; // 项目编码

    @JsonProperty("invoice_title")
    @TableField("invoice_title")
    private String invoiceTitle; // 发票抬头

    @JsonProperty("settlement_time")
    @TableField("settlement_time")
    private String settlementTime; // 结算时间

    @JsonProperty("fee_type")
    @TableField("fee_type")
    private String feeType; // 费用类型

    @JsonProperty("settlement_type")
    @TableField("settlement_type")
    private String settlementType; // 结算类型

    @JsonProperty("capital_direction")
    @TableField("capital_direction")
    private String capitalDirection; // 资金方向

    @JsonProperty("settlement_fee")
    @TableField("settlement_fee")
    private Double settlementFee; // 结算金额

    @JsonProperty("settlement_grant_fee")
    @TableField("settlement_grant_fee")
    private Double settlementGrantFee; // 结算金额--预存赠送部分

    @JsonProperty("alipay_trade_no")
    @TableField("alipay_trade_no")
    private String alipayTradeNo; // 支付流水号

    @JsonProperty("apply_id")
    @TableField("apply_id")
    private String applyId; // 审批单号

    @JsonProperty("over_apply_id")
    @TableField("over_apply_id")
    private String overApplyId; // 超标审批单号

    @JsonProperty("voucher_type")
    @TableField("voucher_type")
    private Integer voucherType; // 票据类型

    @JsonProperty("remark")
    @TableField("remark")
    private String remark; // 备注

    @JsonProperty("apply_extend_field")
    @TableField("apply_extend_field")
    private String applyExtendField; // 审批扩展自定义字段

    @JsonProperty("tax_rate")
    @TableField("tax_rate")
    private String taxRate; // 税率

    @JsonProperty("dep_city_code")
    @TableField("dep_city_code")
    private String depCityCode; // 出发城市(6 字码)

    @JsonProperty("arr_city_code")
    @TableField("arr_city_code")
    private String arrCityCode; // 到达城市(6 字码)

    @JsonProperty("third_itinerary_id")
    @TableField("third_itinerary_id")
    private String thirdItineraryId; // 第三方行程 id

    @JsonProperty("apply_dep_city_code")
    @TableField("apply_dep_city_code")
    private String applyDepCityCode; // 申请出发城市 code

    @JsonProperty("apply_dep_city_name")
    @TableField("apply_dep_city_name")
    private String applyDepCityName; // 申请出发城市名称

    @JsonProperty("apply_arr_city_code")
    @TableField("apply_arr_city_code")
    private String applyArrCityCode; // 申请到达城市 code

    @JsonProperty("apply_arr_city_name")
    @TableField("apply_arr_city_name")
    private String applyArrCityName; // 申请到达城市名称

    @JsonProperty("coach_no")
    @TableField("coach_no")
    private String coachNo; // 车厢号

    @JsonProperty("short_ticket_no")
    @TableField("short_ticket_no")
    private String shortTicketNo; // 取票号

    @JsonProperty("is_transfer_order")
    @TableField("is_transfer_order")
    private String isTransferOrder; // 行程类型

    @JsonProperty("reserve_mode")
    @TableField("reserve_mode")
    private String reserveMode; // 预定类型

    @JsonProperty("ticket_corp_pay_price")
    @TableField("ticket_corp_pay_price")
    private String ticketCorpPayPrice; // 企业支付金额

    @JsonProperty("ticket_person_pay_price")
    @TableField("ticket_person_pay_price")
    private String ticketPersonPayPrice; // 个人支付金额

    @JsonProperty("dep_city_name")
    @TableField("dep_city_name")
    private String depCityName; // 出发城市

    @JsonProperty("arr_city_name")
    @TableField("arr_city_name")
    private String arrCityName; // 到达城市

    @JsonProperty("change_result")
    @TableField("change_result")
    private String changeResult; // 改签事由

    @JsonProperty("refund_reason")
    @TableField("refund_reason")
    private String refundReason; // 退订原因

    @JsonProperty("business_trip_result")
    @TableField("business_trip_result")
    private String businessTripResult; // 出差事由

    @JsonProperty("exceed_reason")
    @TableField("exceed_reason")
    private String exceedReason; // 超标原因

    @JsonProperty("traveler_member_type_name")
    @TableField("traveler_member_type_name")
    private String travelerMemberTypeName; // 出行人类型

    @JsonProperty("print_ticket_price")
    @TableField("print_ticket_price")
    private Double printTicketPrice; // 票面票价

    @JsonProperty("payment_department_id")
    @TableField("payment_department_id")
    private String paymentDepartmentId; // 费用归属部门 id

    @JsonProperty("payment_department_name")
    @TableField("payment_department_name")
    private String paymentDepartmentName; // 费用归属部门名称

    @JsonProperty("speed_package_fee")
    @TableField("speed_package_fee")
    private Double speedPackageFee; // 抢票加速包

    @JsonProperty("change_affiliate_no")
    @TableField("change_affiliate_no")
    private String changeAffiliateNo; // 改签费用归属

    @JsonProperty("refund_affiliate_no")
    @TableField("refund_affiliate_no")
    private String refundAffiliateNo; // 退票费用归属

    @JsonProperty("change_apply_id")
    @TableField("change_apply_id")
    private String changeApplyId; // 改签审批单号

    @JsonProperty("refund_apply_id")
    @TableField("refund_apply_id")
    private String refundApplyId; // 退款审批单号

    @JsonProperty("max_cabin")
    @TableField("max_cabin")
    private String maxCabin; // 原差标坐席

    @JsonProperty("cabin_max_price")
    @TableField("cabin_max_price")
    private Double cabinMaxPrice; // 原差标坐席最高金额

    @JsonProperty("scene_id")
    @TableField("scene_id")
    private String sceneId; // 场景 id

    @JsonProperty("scene_name")
    @TableField("scene_name")
    private String sceneName; // 场景名称

    @JsonProperty("long_ticket_no")
    @TableField("long_ticket_no")
    private String longTicketNo; // 票号

    @JsonProperty("order_ticket_no")
    @TableField("order_ticket_no")
    private String orderTicketNo; // 预订票号

    @JsonProperty("deductible_tax")
    @TableField("deductible_tax")
    private Double deductibleTax; // 参考可抵扣税额

    @JsonProperty("voucher_type_desc")
    @TableField("voucher_type_desc")
    private String voucherTypeDesc; // 票据类型描述

    @JsonProperty("category_desc")
    @TableField("category_desc")
    private String categoryDesc; // 类目描述

    @JsonProperty("fee_type_desc")
    @TableField("fee_type_desc")
    private String feeTypeDesc; // 费用类型描述

    @JsonProperty("settle_type_desc")
    @TableField("settle_type_desc")
    private String settleTypeDesc; // 结算类型描述

    @JsonProperty("trade_action_desc")
    @TableField("trade_action_desc")
    private String tradeActionDesc; // 资金方向描述

    @JsonProperty("status_desc")
    @TableField("status_desc")
    private String statusDesc; // 入账状态描述

    @JsonProperty("dep_station_location")
    @TableField("dep_station_location")
    private String depStationLocation; // 出发站点所在地

    @JsonProperty("dep_station_location_code")
    @TableField("dep_station_location_code")
    private String depStationLocationCode; // 出发站点所在地 code

    @JsonProperty("arr_station_location")
    @TableField("arr_station_location")
    private String arrStationLocation; // 到达站点所在地

    @JsonProperty("arr_station_location_code")
    @TableField("arr_station_location_code")
    private String arrStationLocationCode; // 到达站点所在地 code
}